1. Field of the Invention
The present invention relates generally to transmitting information over computer networks, and more particularly, to a system and method for executing a remote procedure call (RPC) from a Web page displayed in a Web browser to a server.
2. Description of the Related Art
The Internet is a computer network that provides access to the World Wide Web (“the Web”); a vast collection of pages comprised of text, hyperlinks, graphical elements, input elements (e.g. HTML text box), and program code (e.g. JavaScript). Graphical user interface programs called Web browsers are employed by Internet users to receive, or download, the Web pages from servers and display the pages at their client devices. A Web browser displays Web pages by interpreting the HTML document and executing any program code, which results in the showing text, hyperlinks, graphical elements, and input elements on a client display screen.
The rapid increase in the number of Internet users and the ubiquity of the Web browser have prompted companies to adopt Web pages for delivering, to end-users, time-sensitive information and mission-critical software applications. These Web-based applications generally require numerous transmissions of data between a server and the Web browser. Traditionally, for each transmission of data, a new page must be transmitted back to the user or their existing page must be refreshed. This traditional data transmission model, when used in the context of delivering web-based applications to end-users, greatly increases the number of redundant Web page refreshes. Web page refreshes are problematic, because they result in unnecessary server and bandwidth utilization, and force the user to wait for redundant pages to load. This negatively impacts the Web-based application's effectiveness and the Internet user's productivity, while compromising network efficiency and scalability.
Several developments illustrate the great effort at reducing redundant page refreshes and for providing a rich interactive user experience for Web pages without utilizing Web browser plug-ins, such as Macromedia's Flash player or Microsoft's ActiveX controls. One of which was developed and promoted by Microsoft. Microsoft developed a Java Applet-based technology called “Remote Scripting”, which allows information to be exchanged between a displayed Web page and the server, without having to refresh the page. After several years of promotion by Microsoft, however, “Remote Scripting” technology has not been widely adopted by Web developers. There are several reasons for this:                1. Slow: In order to use “Remote Scripting,” each Web page must include a Java Applet, acting as the client-side communication proxy, which must initialize Java Virtual Machine at the client's computer. Initialization of Java Virtual Machine and loading of the Java Applet is a slow process that introduces an undesirable delay in displaying the Web page for most personal computers.        2. Limited Server Compatibility: “Remote Scripting” only supports Microsoft Web server software, such as Microsoft's IIS (Internet Information Server). Most high traffic and established commercial Websites, however, use a non-Microsoft platform or wish not to be limited to only using the Microsoft platform in the future.As a result of these serious limitations, most Web-based applications do not or cannot take advantage of Microsoft's “Remote Scripting” technology.        
Consequently, the most common method for achieving real-time Web page interactivity today, without Web browser plug-ins, is by using a <iframe> element. The <iframe> element serves as the communication proxy for the Web browser. Data is transmitted to the server by utilizing a <form> element and either the “post” or “get” method. Alternatively, one could transmit data to a Web page without utilizing the <form> element by dynamically changing the “src” attribute of an <iframe> element at the Web browser. The <iframe> method for data transmission overcomes the limitations of Microsoft's “Remote Scripting,” but introduces one new serious limitation, which greatly compromises the operation of Microsoft's Web browser.
Specifically, each time new information is loaded into an <iframe> element, a record or URL (Universal Resource Locator) is added to the Microsoft Web browser's history list. That is, the browser is now adding every action performed from the Web page to the history list, rather than just each unique Web page. Thus, since each unique Web page may make several data transmissions, several history records are now being associated with each unique Web page. This is problematic in the context of Web-based applications for the following reasons:                1. Clutters the history list: users must navigate through a large directory tree full of redundant entries before finding the desired Web page.        2. Compromises Web page navigation: users must repeatedly click on the “Back” or “Forward” buttons before being able to leave the current Web page.        3. Produces undesirable application operations: users will trigger duplicate operations at the server (e.g. charge my credit card) when navigating with the browser's “Back” and “Forward” buttons.These problems affect many Internet users today as the majority of these users utilize a Microsoft Web browser. Furthermore, as Netscape winds down its Web browser business and Microsoft becomes the de facto Web browser, this problem will soon plague every single Internet user, and thus cannot be ignored.        
Consequently, NetGratus Inc. developed a method for transmitting data to and from a server by utilizing the <script> element as the communication vehicle. This method prevents unwanted history records from being added to the browser's history list, however, introduced a new limitation. When data is transmitted via the <script> element, the Web page is limited in the amount of data it can transmit to a server. This is due to the fact that the <script> element utilizes the “get” method to transmit data. If the “post” method could also be utilized to transmit data, however, data could be transmitted to and from a displayed Web page without limitation of size.
From the discussion above, it should be apparent that there is a need for better method of transmitting data between a displayed Web page and the server over HTTP. Specifically, a method that offers at least the same benefits of the <iframe> method, without disrupting the Microsoft Web browser's history list. The present invention fulfills this need.